#pragma once

class MyClassFactory : public IClassFactory
{
    private:
    int m_cRef;
    ExtensionType m_ExtensionType;
    
    public:
    MyClassFactory(ExtensionType extensionType);
    virtual ~MyClassFactory();

    ///////////////////////////////////////////////////////////////////////////
    // IUnknown interface Methods
    //
    STDMETHODIMP QueryInterface(REFIID riid, void** ppObject);
    STDMETHODIMP_(ULONG) AddRef();
    STDMETHODIMP_(ULONG) Release();
    //
    ///////////////////////////////////////////////////////////////////////////


    ///////////////////////////////////////////////////////////////////////////
    // IClassFactory Interface Methods
    //
    STDMETHODIMP CreateInstance(IUnknown *pUnkOuter, REFIID riid, void** ppObject);
    STDMETHODIMP LockServer(BOOL fLock);
    //
    ///////////////////////////////////////////////////////////////////////////
    
};

